package com.example.demojwt.controller;

import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.security.Keys;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.crypto.SecretKey;

@RestController
public class HelloJwtController {
    @GetMapping("/hello")
    public String helloJwt() {
        SecretKey secretKey = Keys.secretKeyFor(SignatureAlgorithm.HS384);
        String jwtString = Jwts
                .builder() // 构建Jwts对象
                .setSubject("zhangsan") // 设置playload
                .signWith(secretKey) // 设置加密
                .compact(); // 生成token

        String userInfo = Jwts
                .parserBuilder() // 解析构造
                .setSigningKey(secretKey) // 设置解析算法
                .build() // 构造解析对象
                .parseClaimsJws(jwtString) // 解析token
                .getBody() // 获得tokenbody
                .getSubject(); // 获得subject

        return jwtString + userInfo;
    }
}
